#include "md_languages.h"
#include <stdint.h>
#include <string.h>
/*功能信息*/
static const char *const func_info[LANG_MAX][FUNC_MAX] = {
#if (LANG_US_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/en-US/func_info_en_US.h"
    },
#endif
#if (LANG_CN_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/zh-CN/func_info_zh_CN_UTF8.h"

    },
#endif
};
/*功能分类信息*/
static const char *const func_category_info[LANG_MAX][CAT_MAX] = {

#if (LANG_US_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/en-US/func_cat_info_en_US.h"
    },
#endif
#if (LANG_CN_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/zh-CN/func_cat_info_zh_CN_UTF8.h"

    },
#endif
};
static lang_type_t g_language;
/*
 * 设置语言
*/
void set_language(lang_type_t lang)
{
    if (lang < LANG_MAX)
        g_language = lang;
}
lang_type_t get_language(void)
{
    return g_language;
}
/*
 * 获取功能分类名称
*/
char *get_func_category_name(func_category_t func_category)
{

    return (char *)func_category_info[g_language][func_category];
}


/*
 * 获取功能名称
*/

char *get_func_name(func_category_t func_category, uint8_t num)
{
    //防御性编程，如果传入的分类超出范围，则返回空指针
    if (func_category >= CAT_MAX || func_category<0)
        return NULL;

    uint16_t index=0;

    for(int i = 0; i < func_category; i++)
    {
        index += get_func_cat_count(i);
    }
    index+= num;
    return (char *)func_info[g_language][index];
}
/*****************************************************************************************************************************/
/*setting功能界面信息*/
static const char *const func_setting_info[LANG_MAX][SETTINGS_MAX_NUM] = {

#if (LANG_US_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/en-US/func_setting_en_US.h"
    },
#endif
#if (LANG_CN_ENABLE == LANG_ENABLE_VALUE)
    {
#include "languages/zh-CN/func_setting_zh_CN_UTF8.h"

    },
#endif
};
/*获取对应功能界面的txt数据*/
char *get_func_txt_data(func_list_t func_type, uint8_t num)
{
    switch (func_type) {
        case FUNC_LOGIC_ANALYZER: // 逻辑分析仪
            /*因为不多就不单独创一个文件了*/
            switch (num) {
                case LOGIC_ANALYZER_NUM:
                if (g_language == LANG_US) {
                    return "Logic Analyzer";
                } else if (g_language == LANG_CN) {
                    return "逻辑分析仪";
                }
            }
            break;
        case FUNC_WIRELESS_DEBUG: // 无线调试
            break;
        case FUNC_WIRED_DEBUG: // 有线调试

            break;
        case FUNC_PWM_OUTPUT: // PWM输出
            break;
        case FUNC_DAC_WAVEFORM: // DAC波形
            break;
        case FUNC_AMMETER: // 电流表
            break;
        case FUNC_OSCILLOSCOPE: // 示波器
            break;
        case FUNC_PD_OUTPUT: //(PD输出)
            break;
        case FUNC_STOPWATCH: // 秒表
            break;
        case FUNC_CALCULATOR: // 计算器
            break;
        case FUNC_IP_LOCATION: //(IP 定位 / 天气）
            break;
        case FUNC_OFFLINE_DOWNLOAD: //（离线下载）
            break;
        case FUNC_AC_CONTROL: //（空调遥控 / RMT 控制）
                              /*因为不多就不单独创一个文件了*/
            switch (num) {
                case AC_DEVICE_TYPE_NUM:
                    if (g_language == LANG_US) {
                        return "AC Device Type";
                    } else if (g_language == LANG_CN) {
                        return "空调类型";
                    }
                    break;
                case AC_TEMP_NUM:
                    if (g_language == LANG_US) {
                        return "Temperature";
                    } else if (g_language == LANG_CN) {
                        return "温度";
                    }
                case AC_POWER_NUM:
                    if (g_language == LANG_US) {
                        return "Power";
                    } else if (g_language == LANG_CN) {
                        return "电源";
                    }
                    break;
                case AC_MODE_NUM:
                    if (g_language == LANG_US) {
                        return "Mode";
                    } else if (g_language == LANG_CN) {
                        return "模式";
                    }
                    break;
                case AC_FAN_NUM:
                    if (g_language == LANG_US) {
                        return "Fan";
                    } else if (g_language == LANG_CN) {
                        return "风速";
                    }
                    break;
                case AC_SEND_NUM:
                    if (g_language == LANG_US) {
                        return "Send";
                    } else if (g_language == LANG_CN) {
                        return "发送";
                    }
                    break;
                default:
                    break;
            }
            break;
        case FUNC_USB_AUX_SCREEN: //（USB 副屏）
            break;
        case FUNC_VIDEO_PLAYER: // 视频播放
            break;
        case FUNC_MUSIC_PLAYER: // 音乐播放
            break;
        case FUNC_VOICE_RECORDER: // 录音机
            break;
        case FUNC_BLE_SPEAKER: //Ble 音箱
            break;
        case FUNC_MINIGAME: //（小游戏：2048、骰子等）
            break;
        case FUNC_AI_CHAT: // AI对话
            break;
        case FUNC_SYSTEM_SETTINGS: // 系统设置

            if (num < SETTINGS_MAX_NUM)

                return func_setting_info[g_language][num];

            break;
        case FUNC_WIFI_SETTINGS: // WIFI设置
            /*因为不多就不单独创一个文件了*/

            if (num == WIFI_SETTINGS_SCAN_NUM) {
                if (g_language == LANG_US) {
                    return "wifi scan";
                } else if (g_language == LANG_CN) {
                    return "wifi扫描";
                }
            } else if (num == WIFI_SETTINGS_BLU_NUM) {
                if (g_language == LANG_US) {
                    return "Bluetooth pairing";
                } else if (g_language == LANG_CN) {
                    return "蓝牙配网";
                }
            }
            break;
        case FUNC_OTA_UPDATE: // OTA更新
            break;
        default:
            break;
    }

    return NULL;
}
// typedef enum {
//     REMINDER_CONTINUE = 0, // 继续
//     REMINDER_EXIT,         // 退出
//     REMINDER_VOICN_TITLE,   // 语音提醒标题
//     REMINDER_VOICN_TXT,       // 语音提醒内容

// } reminder_type_t;
/*获取对应功能界面的txt数据*/
char *get_reminder_txt_data(reminder_type_t num)
{
    switch (num) {
        case REMINDER_CONTINUE:
            if (g_language == LANG_US) {
                return "Continue";
            }   
            else if (g_language == LANG_CN) {
                return "继续";
            }   
            break;
        case REMINDER_EXIT:
            if (g_language == LANG_US) {
                return "Exit";
            }   
            else if (g_language == LANG_CN) {
                return "退出";
            }   
            break;
        case REMINDER_VOICN_TITLE:
            if (g_language == LANG_US) {
                return "Audio Conflict Alert";
            }   
            else if (g_language == LANG_CN) {
                return "音频冲突提醒";
            }   
            break;
        case REMINDER_VOICN_TXT:
            if (g_language == LANG_US) {
                return "Due to parameter differences, continuing to play music will pause voice control.";
            }   
            else if (g_language == LANG_CN) {
                return "因参数差异,继续开启音乐将暂停语音控制";
            }   
            break;
        default:
            break;
    }
    return NULL;
}
